package net.ithe.bitistest.mapper;

import net.ithe.bitistest.pojo.User;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper//代表程序，会自动创建一个对象，并且这个对象会自动注入到spring容器中
public interface UserMapper{
    /**
     * 查询所有用户
     * @return User集合
     */
    //@Select("select * from user")
    public List<User> findAll();

    /**
     * 删除接口
     * @param id
     */
    @Delete("delete from user where id=#{id}")
    public void deleteById(Integer id);
    /**
     * 添加用户
     * @param user
     * 注意：#{}里面的命名要与对象的属性值保持一样。即要与pojo的User对象下的属性值保持一致。
     */
    @Insert("insert into user(username, password, name, age) VALUES (#{username},#{password},#{name},#{age})")
    public void insert(User user);
    /**
     * 修改用户
     * @param user
     * 注意：由于是封装的user对象所以#{}里面的命名要与对象的属性值保持一样。即要与pojo的User对象下的属性值保持一致。
     */
    @Update("update user set username=#{username},password=#{password},name=#{name},age=#{age} where id=#{id}")
    public void update(User user);
    /**
     * 根据用户名和密码查询用户
     * @param username
     * @param password
     * @return User对象
     */
    @Select("select * from user where username=#{username} and password=#{password}")
    public User findByUsernameAndpassword(@Param("username") String username, @Param("password") String password);
}
